package com.example.service;

import com.example.mapper.UserMapper;
import com.example.pojo.User;  // 注意：导入你自己定义的User类，不是tomcat的User类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 用户管理服务实现类
 * 负责处理用户的分页查询、添加和删除业务逻辑
 */
@Service
public class UserManagementServiceImpl implements UserManagementService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 根据关键字模糊查询用户，并实现分页
     *
     * @param keyword 查询关键字，用于匹配用户名
     * @param page    当前页码，从1开始
     * @param size    每页显示条数
     * @return 满足条件的用户列表（只包含username、email、power等字段）
     */
    @Override
    public List<User> searchUsers(String keyword, int page, int size) {
        int offset = (page - 1) * size; // 计算数据库查询的起始位置
        return userMapper.searchUsers(keyword, offset, size);
    }

    /**
     * 查询满足关键字条件的用户总数，用于分页计算
     * @param keyword 查询关键字
     * @return        满足条件的用户总条数
     */
    @Override
    public int countUsers(String keyword) {
        return userMapper.countUsers(keyword);
    }

    /**
     * 添加一个新的用户
     * 只插入用户的username、email、power字段，password等字段需另外处理
     * @param user 要添加的用户对象
     * @return     添加成功返回true，否则false
     */
    @Override
    public boolean addUser(User user) {
        return userMapper.insertUUser(user) > 0;
    }

    /**
     * 根据用户id删除对应的用户
     * @param id 用户id
     * @return   删除成功返回true，否则false
     */
    @Override
    public boolean deleteUser(Integer id) {
        return userMapper.deleteUser(id) > 0;
    }
}